package day_8_14;

/**
 * https://leetcode.cn/problems/reverse-bits/?envType=study-plan-v2&envId=top-interview-150
 * 190. 颠倒二进制位
 */
public class Main2 {
    public int reverseBits(int n) {
        // 把 n的从后往前的每一位，放到需要返回的每一位后面
        // 之后将n右移一位，将要返回的值左移一位
        int ret = 0;
        int count = 32;
        while(count-- > 0) {
            ret <<= 1;
            ret += (n & 1); // n&1 就是n的二进制的 右到左 的每一个最后一位
            n >>= 1;
        }
        return ret;
    }
}
